/*
 * Copyright (c) 2009, Jan Pastor. All Rights Reserved.
 */

package sk.jp.jitag.vo.file;

import java.util.Set;

import sk.jp.imageio.jpeg.metadata.Tag;
import sk.jp.imageio.jpeg.metadata.Rating;
import sk.jp.imageio.jpeg.metadata.Info;

/**
 * Media file that supports tags, rating and additinal file info.
 */
public interface MediaFile {

    /**
     * Returns a set of image tags.
     * @return set of image tags.
     */
    Set<Tag> getTags();

    /**
     * Returns image rating.
     * @return image rating.
     */
    Rating getRating();

    /**
     * Returns additional image information.
     * @return additional image information.
     */
    Info getInfo();

    boolean supportZoom();
    boolean supportRotation();

    void accept(MediaTypeVisitor visitor);

}
